Java 写入文件时添加BOM头 您所在的位置:网站首页 utf16le编码 阅读器 Java 写入文件时添加BOM头

Java 写入文件时添加BOM头

2023-08-10 21:40| 来源: 网络整理| 查看: 265

BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。百度百科

项目中用到csv文件,使用Java读写csv文件时都设置了编码为utf8,然而用excel打开这些csv文件时中文都是乱码(使用wps可以正常显示)。

原来,excel是通过读取文件的BOM头来判断文件的编码的,如果不存在BOM头,则使用系统的默认编码。

为了解决乱码问题,只需要在文件头部添加BOM头信息,并在读写文件时指定对应编码即可:

try { FileInputStream fis = new FileInputStream("input.csv"); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); FileOutputStream fos = new FileOutputStream("output.csv"); fos.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF}); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); BufferedWriter bw = new BufferedWriter(osw); String line = null


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有